###################################################################################################################
##################################################  Mod keys  #####################################################

set $mod Mod4
floating_modifier $mod
# Use Mouse+$mod to drag floating windows to their wanted position


##############################################W####################################################################
####################################################  Font  #######################################################

font pango:open sans 8


###################################################################################################################
##############################################  Kill focused window  ##############################################

bindsym $mod+q kill


###################################################################################################################
################################################  Start a terminal  ###############################################

bindsym $mod+Return exec i3-sensible-terminal


###################################################################################################################
##############################################  Change window focus  ##############################################

bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right


###################################################################################################################
##############################################  Move focused window  ##############################################

bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right


###################################################################################################################
###############################################  Split new window  ################################################

bindsym $mod+h split h 
bindsym $mod+v split v 


###################################################################################################################
##########################################  Fullscreen focused container  #########################################

bindsym $mod+f fullscreen toggle


###################################################################################################################
############################################  Change container layout  ############################################
# (stacked, tabbed, toggle split)

bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split


###################################################################################################################
#############################################  Toggle tiling/floating  ############################################

bindsym $mod+Shift+space floating toggle


###################################################################################################################
########################################  Focus tiling / floating windows  ########################################

bindsym $mod+space focus mode_toggle


###################################################################################################################
########################################  Focus parent / child container  #########################################

bindsym $mod+a focus parent
#bindsym $mod+d focus child


###################################################################################################################
##############################################  Workspace names  ##################################################

set $ws1 "1:"
set $ws2 "2:"
set $ws3 "3:"
set $ws4 "4"
set $ws5 "5:"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"


###################################################################################################################
#########################################  Assign program to workspace  ###########################################

assign [class="Gnome-terminal"] $ws1
assign [class="Geary"] $ws2
assign [class="Thunderbird"] $ws2
assign [class="Firefox"] $ws3
assign [class="Firefox-esr"] $ws3
assign [class="Chromium"] $ws3
assign [class="Emacs"] $ws5


###################################################################################################################
##############################################  Workspace switch  #################################################

bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10


###################################################################################################################
######################################  Move focused container to workspace  ######################################

bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10


###################################################################################################################
#################################################  Switch workspace  ####################################3#########

bindsym $mod+period workspace next
bindsym $mod+comma workspace prev 


###################################################################################################################
##############################################  Reload / Restart / Exit  ##########################################

bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
bindsym $mod+Shift+e exec i3-msg exit
# bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"


###################################################################################################################
##################################################  Resize window  ################################################
# (you can also use the mouse for that)

mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # Pressing left will shrink the window’s width.
        # Pressing right will grow the window’s width.
        # Pressing up will shrink the window’s height.
        # Pressing down will grow the window’s height.
        bindsym j resize shrink width 5 px or 5 ppt
        bindsym k resize grow height 5 px or 5 ppt
        bindsym l resize shrink height 5 px or 5 ppt
        bindsym semicolon resize grow width 5 px or 5 ppt

        # same bindings, but for the arrow keys
        bindsym Left resize shrink width 5 px or 5 ppt
        bindsym Down resize grow height 5 px or 5 ppt
        bindsym Up resize shrink height 5 px or 5 ppt
        bindsym Right resize grow width 5 px or 5 ppt

        # back to normal: Enter or Escape or $mod+r
        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+r mode "default"
}

bindsym $mod+r mode "resize"


###################################################################################################################
###################################################  i3bar  #######################################################
##################################### adapted from lovelybacon.deviantart.com  ####################################

set $bg-color 	         #243035
set $text-color          #CFD8DC
set $select-color 	 #00BCD4
set $destructive-color 	 #FF5252

bar {
        status_command conky -c $HOME/.config/i3/conky/conkyrc
	mode dock
	position top
	font pango:open sans 9
	strip_workspace_numbers yes
	
	colors {
		background $bg-color
		statusline #788491
		separator #51c4d4

		#			border		background         text
		focused_workspace  	$bg-color 	$bg-color 	   $select-color
		active_workspace   	$bg-color	$bg-color 	   $select-color
		inactive_workspace 	$bg-color	$bg-color	   #94AAAB
		urgent_workspace   	$bg-color	$bg-color 	   $destructive-color
		}
}


###################################################################################################################
##################################################  window colors  ################################################

#                       border              background          text                 indicator
client.focused          $bg-color           $bg-color           $text-color          $select-color
client.urgent 		$destructive-color  $destructive-color  $text-color	     $select-color


###################################################################################################################
####################################################  Rofi  #######################################################

bindsym $mod+d exec rofi -show run 
# bindsym $mod+d exec rofi -show run -font "inconsolate 12" -fg "#ecedee" -bg "#1D1E24" -hlfg "#ecedee" -hlbg "#394959" -o 100 -lines 9 -width 100 -padding 400 -opacity 74 -separator-style none
bindsym $mod+Shift+w exec rofi -show window 


###################################################################################################################
##############################################  Borders / titlebar  ###############################################

new_window pixel 1
# hide_edge_borders both
bindsym Control+Shift+x [class="^.*"] border toggle


###################################################################################################################
#####################################################  i3lock  ####################################################

bindsym $mod+Shift+x exec $HOME/.config/i3/lock


###################################################################################################################
####################################################  Compton  ####################################################

exec_always --no-startup-id compton -f


###################################################################################################################
####################################################  Background  #################################################

exec --no-startup-id feh --bg-fill $HOME/Pictures/bike_drop.png


###################################################################################################################
#############################################  Audio volume keybindings  ##########################################

bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set -c 0 Master 2%+
bindsym XF86AudioLowerVolume exec --no-startup-id amixer set -c 0 Master 2%-

bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id amixer -c 0 set Master 15%+
bindsym Shift+XF86AudioLowerVolume exec --no-startup-id amixer -c 0 set Master 15%-

bindsym XF86AudioMute exec amixer -c 0 -q set Master toggle


###################################################################################################################
###################################################  Startup Soft  ################################################

exec --no-startup-id gnome-terminal

# Tap to click
# exec --no-startup-id xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1